public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");

        //****二叉树****
        //二叉树的概念
        //树型结构的概念
        //树是一种非线性的数据结构，它是由n（n>=0）个有限节点组成一个具有层次关系的集合，把它叫做树是因为它看起来很想一颗倒挂的树，也就是
        //根朝上，而叶朝下
        //特点：
        // 有一个特殊的节点 根节点：它没有前驱节点
        // 除根结点之外，其余结点被分成M（M>0）个互不相交的集合T1、T2、......、Tm ， 其中每一个集合
        // Ti （1<= i <=m）又是一棵与树类似的子树。每棵子树的根节点有且只有一个前驱，可以有 0 个 或者多个后继
        // 树是递归定义的
        // 子树是不能相交的
        // 除了根节点，其余节点有且只有一个父节点
        // 一棵N个节点的树有N-1条边


        //树的概念:
        // 图片介绍

        //树的应用
        //文件系统管理（目录和文件）


        //二叉树的实现
        // 二叉树的度不能超过二 ， 就是二叉树
        // 或者为空
        // 或者是由一个根节点加上两颗别称为左子树和右子树的二叉树构成
        // 二叉树是不存在度大于2的系欸但
        // 二叉树的子树有左右之分
        // 二叉树的每个子树的度都不能超过2个


        //****两种特殊的二叉树****
        // 满二叉树：
        // 每一层都达到了最大值
        // 如果一棵二叉树的层次为k ，且总结点数是2^k-1，那就是满二叉树
        // 如果总结点数为n
        // 则 k = log(n+1)  （以2为底）
        // 向上取整
        // 第k层的节点数是 2^(k-1)
        // 完全二叉树:
        //如果深度为k ，对于n个节点的二叉树，当且仅当其每一个节点都与深度为k的满二叉树中编号从0至n-1的节点一一对应时  (从上到下从左往右一一编号)
        // 称为完全二叉树
        // 满二叉树是一种特殊的完全二叉树
        // 从左往右数不能有空的


        // ****二叉树的性质****
        // 上面的公式
        // 性质3：对于任何一棵二叉树，其度为零的节点都要比度为2的节点数多一个（ n0 = n2 + 1 ）
        // 性质5 ： 对于有n个节点的完全二叉树，如果按照从上至下从左至右的顺序对所有节点从0开始编号，则对于序号为i的节点有：
        // 若 i> 0 ，双亲序号为： (i-1)/2; i = 0, i为根节点编号，无双亲节点   // 这里的/还是整除，没有小数
        // 若 2i+1<n ,左孩子的序号为： 2i+1,否则无左孩子
        // 若 2i+2<n ,右孩子的序号为： 2i+2,否则无右孩子



    }
}